package com.wondertek.poms.setting.vo;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.groups.Default;

import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.Range;

import com.wondertek.poms.common.utils.validate.GroupType;

import lombok.Data;

/**
 * <p><b>SysDictDataVo Description:</b> SysDictDataVo类  对应 sys_dict_data-数据字典详情表;数据字典详情表 表</p>
 * @author 窦再兴
 * <p><b>DATE</b> 2020-03-02 18:14:16</p>
 */
 @Data
public class SysDictDataVo {
	
	/**
	 * <b>Fields</b> id : 主键ID
	 */
	@NotNull(message = "id不能为空", groups = {GroupType.Update.class})
	private Long id;
	
	/**
	 * <b>Fields</b> parentId : 父级编号
	 */
//	@NotNull(message = "父级编号不能为空", groups = {Default.class})
	private Long parentId;
	
	/**
	 * <b>Fields</b> parentIds : 所有父级编号;可用于做数据权限
	 */
	@Length(message = "所有父级编号，可用于做数据权限长度不能超过600个字符", max = 600, groups = {Default.class, GroupType.Update.class})
	private String parentIds;
	
	/**
	 * <b>Fields</b> sort : 排序号
	 */
	@Range(message = "排序号的范围 是[0-100]", min=0, max=100, groups = {Default.class, GroupType.Update.class})
	@NotNull(message = "排序列不能为空", groups = {Default.class, GroupType.Update.class})
	private Integer sort;
	
	/**
	 * <b>Fields</b> lastLeaf : 是否最末级;1：是 0：否
	 */
	@Range(message = "是否最末级取值为0或1", min=0, max=1, groups = {Default.class})
	private Integer lastLeaf;
	
	/**
	 * <b>Fields</b> label : 标签
	 */
	@NotBlank(message = "标签不能为空", groups = {Default.class, GroupType.Update.class})
	@Length(message = "标签长度不能超过128个字节", max=128, groups = {Default.class, GroupType.Update.class})
	private String label;
	
	/**
	 * <b>Fields</b> value : 键值
	 */
	@NotBlank(message = "键值不能为空", groups = {Default.class, GroupType.Update.class})
	@Length(message = "键值长度不能超过128个字节", max=128, groups = {Default.class, GroupType.Update.class})
	private String value;
	
	/**
	 * <b>Fields</b> type : 类型
	 */
	@NotBlank(message = "类型不能为空", groups = {Default.class, GroupType.Update.class})
	@Length(message = "类型长度不能超过128个字节", max=128, groups = {Default.class, GroupType.Update.class})
	private String type;
	
	/**
	 * <b>Fields</b> description : 描述
	 */
	@Length(message = "描述长度不能超过512个字节", max=512, groups = {Default.class, GroupType.Update.class})
	private String description;
	
	/**
	 * <b>Fields</b> createdBy : 创建人
	 */
	@Length(message = "创建人长度不能超过64个字节", max=64, groups = {Default.class, GroupType.Update.class})
	private String createdBy;
	
	/**
	 * <b>Fields</b> createdTime : 创建时间
	 */
	@Length(message = "创建时间长度不能超过25个字节", max=25, groups = {Default.class, GroupType.Update.class})
	private String createdTime;
	
	/**
	 * <b>Fields</b> updatedBy : 更新人
	 */
	@Length(message = "更新人长度不能超过64个字节", max=64, groups = {Default.class, GroupType.Update.class})
	private String updatedBy;
	
	/**
	 * <b>Fields</b> updatedTime : 更新时间
	 */
	@Length(message = "更新时间长度不能超过25个字节", max=25, groups = {Default.class, GroupType.Update.class})
	private String updatedTime;
	
	/**
	 * <b>Fields</b> remarks : 备注
	 */
	@Length(message = "备注长度不能超过512个字节", max=512, groups = {Default.class, GroupType.Update.class})
	private String remarks;
	
	/**
	 * <b>Fields</b> del : 状态（0正常 1删除 2停用）
	 */
	@Range(message = "是否删除;1:是 0:否的范围是[0-2]", min=0, max=2, groups = {Default.class, GroupType.Update.class})
	private Integer deleted;
}